{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 使用GNN进行半监督的社区发现\n",
    "\n",
    "Almost every computer 101 class starts with a \"Hello World\" example. Like MNIST for deep learning, in graph domain we have the Zachary's Karate Club problem. The karate club is a social network that includes 34 members and documents pairwise links between members who interact outside the club. The club later divides into two communities led by the instructor (node 0) and the club president (node 33). The network is visualized as follows with the color indicating the community.\n",
    "<img src='../asset/karat_club.png' align='center' width=\"400px\" height=\"300px\" />\n",
    "\n",
    "In this tutorial, you will learn:\n",
    "\n",
    "* Formulate the community detection problem as a semi-supervised node classification task.\n",
    "* Build a GraphSAGE model, a popular Graph Neural Network architecture proposed by [Hamilton et al.](https://arxiv.org/abs/1706.02216)\n",
    "* Train the model and understand the result."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from tutorial_utils import setup_tf\n",
    "setup_tf()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import dgl\n",
    "import tensorflow as tf\n",
    "import itertools"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 使用节点分类实现社区发现\n",
    "\n",
    "The study of community structure in graphs has a long history. Many proposed methods are *unsupervised* (or *self-supervised* by recent definition), where the model predicts the community labels only by connectivity. Recently, [Kipf et al.,](https://arxiv.org/abs/1609.02907) proposed to formulate the community detection problem as a semi-supervised node classification task. With the help of only a small portion of labeled nodes, a GNN can accurately predict the community labels of the others.\n",
    "\n",
    "In this tutorial, we apply Kipf's setting to the Zachery's Karate Club network to predict the community membership, where only the labels of a few nodes are used."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We first load the graph and node labels as is covered in the [last session](./1_load_data.ipynb). Here, we have provided you a function for loading the data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Graph(num_nodes=34, num_edges=156,\n",
      "      ndata_schemes={'club': Scheme(shape=(), dtype=tf.int64), 'club_onehot': Scheme(shape=(2,), dtype=tf.float32)}\n",
      "      edata_schemes={})\n"
     ]
    }
   ],
   "source": [
    "from tutorial_utils import load_zachery\n",
    "\n",
    "# ----------- 0. load graph -------------- #\n",
    "g = load_zachery()\n",
    "print(g)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the original Zachery's Karate Club graph, nodes are feature-less. (The `'Age'` attribute is an artificial one mainly for tutorial purposes). For feature-less graph, a common practice is to use an embedding weight that is updated during training for every node.\n",
    "\n",
    "We can use Keras's `Embedding` module to achieve this."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<tf.Variable 'embedding/embeddings:0' shape=(34, 5) dtype=float32, numpy=\n",
      "array([[ 0.18568936,  0.24956593, -0.29168034, -0.27750796,  0.10271347],\n",
      "       [-0.19641726,  0.23921284, -0.1291064 ,  0.2901238 ,  0.12351915],\n",
      "       [ 0.19690016, -0.31652123, -0.01024836,  0.1292102 , -0.23551701],\n",
      "       [ 0.05352545, -0.33717942, -0.155205  , -0.10800689,  0.20577553],\n",
      "       [ 0.02795082, -0.10612816,  0.20633307,  0.08879638,  0.12645611],\n",
      "       [-0.34818685,  0.31702647, -0.23966226,  0.05480802,  0.31978872],\n",
      "       [-0.12157431, -0.21816877, -0.05451578,  0.0781244 , -0.02126244],\n",
      "       [-0.16801576,  0.03256705,  0.23756239,  0.18341693, -0.15158473],\n",
      "       [-0.128084  ,  0.03747481,  0.26745066, -0.16127247,  0.3117036 ],\n",
      "       [-0.1780569 ,  0.3214017 ,  0.17169073,  0.10251164, -0.11105746],\n",
      "       [ 0.16156206,  0.21729448,  0.25164506,  0.0230163 ,  0.27926794],\n",
      "       [ 0.30207488,  0.34524927, -0.23364511, -0.3225526 , -0.19720307],\n",
      "       [-0.2774266 , -0.1927522 ,  0.36878654, -0.07494393,  0.1347371 ],\n",
      "       [ 0.32406268, -0.2462219 , -0.2079347 , -0.00576037, -0.03602299],\n",
      "       [ 0.01629835, -0.25508624,  0.18807045,  0.36307725, -0.08565071],\n",
      "       [-0.02261952, -0.08390272,  0.06143096,  0.13470235,  0.27687714],\n",
      "       [ 0.34456733, -0.07292297, -0.30292696, -0.28544864, -0.3201209 ],\n",
      "       [-0.19132197, -0.30450755,  0.02519175, -0.28575024, -0.32629752],\n",
      "       [-0.05013877, -0.16084228, -0.2110556 ,  0.38526264, -0.18483883],\n",
      "       [-0.29886174, -0.3052615 ,  0.23784909, -0.367795  ,  0.2917935 ],\n",
      "       [-0.23863341,  0.09699404, -0.32009798, -0.09233025, -0.20800672],\n",
      "       [-0.23099348, -0.32583788, -0.09581304,  0.09817076,  0.33486083],\n",
      "       [-0.22865988, -0.30141914, -0.17736788,  0.06160331,  0.16493782],\n",
      "       [-0.07509527,  0.03290305, -0.17240734,  0.3001041 , -0.28939041],\n",
      "       [ 0.2513742 , -0.08900782, -0.3811003 , -0.06649053, -0.2747674 ],\n",
      "       [-0.2605692 ,  0.15997234, -0.2193262 , -0.34311244,  0.01350006],\n",
      "       [-0.02168193, -0.37737772,  0.19620338,  0.0188297 ,  0.10293293],\n",
      "       [ 0.10457262,  0.13211855, -0.37580478, -0.06557491,  0.37970552],\n",
      "       [ 0.10680795,  0.33449098,  0.25250533, -0.02255341, -0.09792489],\n",
      "       [-0.03564295, -0.2837764 ,  0.10237586, -0.30091435, -0.0334287 ],\n",
      "       [ 0.36938038, -0.16183   ,  0.0582042 , -0.16335692, -0.28029838],\n",
      "       [ 0.15129653,  0.24769786, -0.1381459 , -0.00523219,  0.34475306],\n",
      "       [-0.23366176, -0.2353829 , -0.268989  , -0.1750946 , -0.13090321],\n",
      "       [ 0.14858869, -0.39024797, -0.18787704, -0.19571888, -0.28413364]],\n",
      "      dtype=float32)>\n"
     ]
    }
   ],
   "source": [
    "# ----------- 1. node features -------------- #\n",
    "node_embed = tf.keras.layers.Embedding(g.number_of_nodes(), 5,\n",
    "                                       embeddings_initializer='glorot_uniform')  # Every node has an embedding of size 5.\n",
    "node_embed(1) # intialize embedding layer\n",
    "inputs = node_embed.embeddings # the embedding matrix\n",
    "print(inputs)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The community label is stored in the `'club'` node feature (0 for instructor, 1 for club president). Only nodes 0 and 33 are labeled."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Labels tf.Tensor([0 1], shape=(2,), dtype=int64)\n"
     ]
    }
   ],
   "source": [
    "labels = g.ndata['club']\n",
    "labeled_nodes = [0, 33]\n",
    "print('Labels', tf.gather(labels, labeled_nodes))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 定义GraphSAGE模型\n",
    "\n",
    "Our model consists of two layers, each computes new node representations by aggregating neighbor information. The equations are:\n",
    "\n",
    "$$\n",
    "h_{\\mathcal{N}(v)}^k\\leftarrow \\text{AGGREGATE}_k\\{h_u^{k-1},\\forall u\\in\\mathcal{N}(v)\\}\n",
    "$$\n",
    "\n",
    "$$\n",
    "h_v^k\\leftarrow \\sigma\\left(W^k\\cdot \\text{CONCAT}(h_v^{k-1}, h_{\\mathcal{N}(v)}^k) \\right)\n",
    "$$\n",
    "\n",
    "DGL provides implementation of many popular neighbor aggregation modules. They all can be invoked easily with one line of codes. See the full list of supported [graph convolution modules](https://docs.dgl.ai/api/python/nn.pytorch.html#module-dgl.nn.pytorch.conv)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "from dgl.nn import SAGEConv\n",
    "\n",
    "# ----------- 2. create model -------------- #\n",
    "# build a two-layer GraphSAGE model\n",
    "class GraphSAGE(tf.keras.layers.Layer):\n",
    "    def __init__(self, in_feats, h_feats, num_classes):\n",
    "        super(GraphSAGE, self).__init__()\n",
    "        self.conv1 = SAGEConv(in_feats, h_feats, 'mean')\n",
    "        self.conv2 = SAGEConv(h_feats, num_classes, 'mean')\n",
    "    \n",
    "    def call(self, g, in_feat):\n",
    "        h = self.conv1(g, in_feat)\n",
    "        h = tf.nn.relu(h)\n",
    "        h = self.conv2(g, h)\n",
    "        return h\n",
    "    \n",
    "# Create the model with given dimensions \n",
    "# input layer dimension: 5, node embeddings\n",
    "# hidden layer dimension: 16\n",
    "# output layer dimension: 2, the two classes, 0 and 1\n",
    "net = GraphSAGE(5, 16, 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /Users/jamezhan/anaconda3/envs/dgl/lib/python3.6/site-packages/tensorflow/python/ops/array_grad.py:644: _EagerTensorBase.cpu (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.identity instead.\n",
      "In epoch 0, loss: 0.7030107975006104\n",
      "In epoch 5, loss: 0.4655799865722656\n",
      "In epoch 10, loss: 0.2849842309951782\n",
      "In epoch 15, loss: 0.13031938672065735\n",
      "In epoch 20, loss: 0.04314617067575455\n",
      "In epoch 25, loss: 0.012314431369304657\n",
      "In epoch 30, loss: 0.003953177481889725\n",
      "In epoch 35, loss: 0.0015926912892609835\n",
      "In epoch 40, loss: 0.0008075737277977169\n",
      "In epoch 45, loss: 0.0004980967496521771\n",
      "In epoch 50, loss: 0.00035541222314350307\n",
      "In epoch 55, loss: 0.0002809925645124167\n",
      "In epoch 60, loss: 0.00023797043832018971\n",
      "In epoch 65, loss: 0.00021109546651132405\n",
      "In epoch 70, loss: 0.00019297969993203878\n",
      "In epoch 75, loss: 0.0001794522104319185\n",
      "In epoch 80, loss: 0.00016872541164048016\n",
      "In epoch 85, loss: 0.00015960751625243574\n",
      "In epoch 90, loss: 0.00015144303324632347\n",
      "In epoch 95, loss: 0.0001437552273273468\n"
     ]
    }
   ],
   "source": [
    "# ----------- 3. set up loss and optimizer -------------- #\n",
    "optimizer = tf.keras.optimizers.Adam(learning_rate=0.01)\n",
    "loss_fcn = tf.keras.losses.SparseCategoricalCrossentropy(\n",
    "    from_logits=True)\n",
    "\n",
    "# ----------- 4. training -------------------------------- #\n",
    "all_logits = []\n",
    "for e in range(100):\n",
    "    \n",
    "    with tf.GradientTape() as tape:\n",
    "        tape.watch(inputs) # optimize embedding layer also\n",
    "        \n",
    "        # forward\n",
    "        logits = net(g, inputs)\n",
    "\n",
    "        # compute loss\n",
    "        loss = loss_fcn(tf.gather(labels, labeled_nodes), \n",
    "                        tf.gather(logits, labeled_nodes))\n",
    "\n",
    "        # backward\n",
    "        grads = tape.gradient(loss, net.trainable_weights + node_embed.trainable_weights)        \n",
    "        optimizer.apply_gradients(zip(grads, net.trainable_weights + node_embed.trainable_weights))\n",
    "        all_logits.append(logits.numpy())\n",
    "    \n",
    "    if e % 5 == 0:\n",
    "        print('In epoch {}, loss: {}'.format(e, loss))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy 0.4117647058823529\n"
     ]
    }
   ],
   "source": [
    "# ----------- 5. check results ------------------------ #\n",
    "pred = tf.argmax(logits, axis=1).numpy()\n",
    "print('Accuracy', (pred == labels.numpy()).sum().item() / len(pred))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 对结果进行可视化\n",
    "\n",
    "Since the GNN produces a logit vector of size 2 for each array. We can plot to a 2-D plane.\n",
    "\n",
    "<img src='../asset/gnn_ep0.png' align='center' width=\"400px\" height=\"300px\"/>\n",
    "<img src='../asset/gnn_ep_anime.gif' align='center' width=\"400px\" height=\"300px\"/>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Run the following code to visualize the result. Require ffmpeg."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# A bit of setup, just ignore this cell\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# for auto-reloading external modules\n",
    "%load_ext autoreload\n",
    "%autoreload 2\n",
    "\n",
    "%matplotlib inline\n",
    "plt.rcParams['figure.figsize'] = (4.0, 3.0) # set default size of plots\n",
    "plt.rcParams['image.interpolation'] = 'nearest'\n",
    "plt.rcParams['image.cmap'] = 'gray'\n",
    "plt.rcParams['animation.html'] = 'html5'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "ename": "RuntimeError",
     "evalue": "Requested MovieWriter (ffmpeg) not available",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
      "\u001b[0;32m~/anaconda3/envs/dgl/lib/python3.6/site-packages/matplotlib/animation.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m    160\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 161\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mavail\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    162\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mKeyError\u001b[0m: 'ffmpeg'",
      "\nDuring handling of the above exception, another exception occurred:\n",
      "\u001b[0;31mRuntimeError\u001b[0m                              Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-12-035475531c16>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m     25\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     26\u001b[0m \u001b[0mani\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0manimation\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mFuncAnimation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfig\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdraw\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mframes\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mall_logits\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minterval\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m200\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 27\u001b[0;31m \u001b[0mHTML\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mani\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_html5_video\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/anaconda3/envs/dgl/lib/python3.6/site-packages/matplotlib/animation.py\u001b[0m in \u001b[0;36mto_html5_video\u001b[0;34m(self, embed_limit)\u001b[0m\n\u001b[1;32m   1324\u001b[0m                 \u001b[0;31m# We create a writer manually so that we can get the\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1325\u001b[0m                 \u001b[0;31m# appropriate size for the tag\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1326\u001b[0;31m                 \u001b[0mWriter\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mwriters\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mrcParams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'animation.writer'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1327\u001b[0m                 writer = Writer(codec='h264',\n\u001b[1;32m   1328\u001b[0m                                 \u001b[0mbitrate\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrcParams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'animation.bitrate'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/dgl/lib/python3.6/site-packages/matplotlib/animation.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, name)\u001b[0m\n\u001b[1;32m    162\u001b[0m         \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    163\u001b[0m             raise RuntimeError(\n\u001b[0;32m--> 164\u001b[0;31m                 'Requested MovieWriter ({}) not available'.format(name))\n\u001b[0m\u001b[1;32m    165\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    166\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mRuntimeError\u001b[0m: Requested MovieWriter (ffmpeg) not available"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAe8AAAGRCAYAAABMoTt8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAXEQAAFxEByibzPwAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd3xT1fvA8U/S3QKlUKAg0KIMkaFMRbYgiGzQrwMEBQTXV0TB8RMBBRdT/SK4ARVBQYYiey+RDTJc0DJlr+6V5/fHbdKGpm3Spi1pn7ev+yLJPffcc5OaJ+fcM0wiIiillFLKY5gLuwBKKaWUco0Gb6WUUsrDaPBWSimlPIwGb6WUUsrDaPBWSimlPIwGb6WUUsrDaPBWSimlPIwGb6WUUsrDaPBWSimlPIwGb6WUUsrDaPBWSimlPIwGb6WUUsrDaPBWSimlPIwGb6WUUsrDaPBWqhgzmUyYTCbWr19f2EVRSrlAg7dSacaMGWMLZs5syn2io6MZM2YM9erVo0SJEgQHB9OkSRMmTZpEUlJSYRdPqRuOd2EXQKkbUYUKFQq7CMXGsWPHaNOmDVFRUQAEBgaSmJjIzp072blzJ7Nnz2bNmjWEhIQUbkGVuoFozVspB86cOZPjpvIuJSWFrl27EhUVRcWKFVm1ahWxsbHExcUxd+5cSpYsyZ49e+jbt29hF1WpG4oGb6VUoZk1axa///47AD/++CPt27cHwGw289BDD/Hpp58CsHTpUtasWVNo5VTqRqPBWyk3iYiIwGQyMXPmTKKjo3nttdeoVasWAQEBhIaG0qNHD3777bds80hNTeWrr77innvuITQ0FD8/P2666SYefPBBpzqVnThxgpdffpk77riD4OBgAgICuOWWW+jevTtff/01CQkJWR4bHR3NyJEjufXWWwkICKBs2bJ06dIlxzLnxaxZswBo27YtzZo1y7T/4Ycfplq1agB8/fXX+VYOpTyOKKVERGT06NECSG7/twgPDxdAJk+eLLVq1RJAfH19pVSpUrZ8zWazfPnllw6Pv3LlirRp08aW1svLS0qXLi0mk8n22vDhw7M8/9dffy3+/v62tL6+vlK2bFnx9va2vbZnzx67Y6yvf/fdd1K9enUBxN/fXwIDA+3yWbFiRY7vWWRkpEvvV2xsrJjNZgFk/PjxWaZ7+umnBZCwsDCX8leqKNOat1Ju9uabb3Lu3Dl++OEHYmNjuXr1KocOHaJ169ZYLBaGDBnC7t27Mx03cOBA1q9fj6+vLx999BHXrl3j8uXLnD59mgEDBgAwceJEPvnkk0zH/vLLL/Tv35+EhASaN2/Opk2biI+P58KFC8TGxrJp0yaefPJJfH19HZb52WefxdfXl7Vr1xIbG0tMTAzbt2+nVq1aJCUlMXjwYCwWi1vfp8OHD9vyrFu3bpbprPvOnDnDpUuX3FoGpTxWYf96UOpGkbEWWaFChWy3559/PtPx1po3IKtXr860Py4uTmrUqCGA3H///Xb7tm3bZjv2008/dVi+3r17CyChoaESHx9vez05OVmqVasmgLRo0UISExOdvmbrOcuVKydnz57NtH///v22NJs3b860Py81759++sl27L59+7JMt2jRIlu633//3aVzKFVUac1bKQfOnj2b7Xb16tUsj23evDnt2rXL9HpAQAAjRowAYPny5XZ5fP/99wBUrlyZQYMGOcx37NixAFy4cIFVq1bZXl+3bh2RkZEATJkyJcvadXYGDx5M+fLlM71er1492z3n/fv3Z9o/ZswYRAQRISIiwqVzRkdH2x4HBgZmmS7jvozHKFWcafBWygFrQMpqmzlzZpbH3nPPPTnus1gsdk3nO3fuBIyOW2az4/8ta9euzU033WSXHmDr1q0AhIWF0bhxY+cu8Dp33nlnlvsqVaoEoE3WSt1ANHgr5WbWAJvTvnPnzmV6nN2xYNTMrz/WOuY8PDzc9cKmKVmyZJb7vL2NuZySk5NznX9O54yLi8syXcZ92ZVTqeJEg7dSHs5Tp2q11ugBTp06lWW6jPsyHqNUcabBWyk3czYQZbzHbH188uTJbPO27s94bFhYGGBMM+pJateubbtFcODAgSzTWfeFhYVRpkyZAimbUjc6Dd5Kudm6dety3Gc2m2nQoIHtdeu96nXr1mU5JOuPP/6wBf8mTZrYXr/77rsBo/k8473wG11gYCDNmzcHjA58jogIK1asAKBDhw4FVjalbnQavJVys82bNzucDS0hIYFJkyYB0LFjR0qXLm3b9/DDDwNGzfyLL75wmO+oUaMACA0NtU0jCkYnt5tvvhmAYcOGedQqXP379weMHy2OZnKbN28eR48eBaBfv34FWjalbmQavJVys+DgYHr37s38+fNJSUkB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\n",
      "text/plain": [
       "<Figure size 600x450 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualize the node classification using the logits output. Requires ffmpeg.\n",
    "import networkx as nx\n",
    "import numpy as np\n",
    "import matplotlib.animation as animation\n",
    "from IPython.display import HTML\n",
    "\n",
    "fig = plt.figure(dpi=150)\n",
    "fig.clf()\n",
    "ax = fig.subplots()\n",
    "nx_G = g.to_networkx()\n",
    "def draw(i):\n",
    "    cls1color = '#00FFFF'\n",
    "    cls2color = '#FF00FF'\n",
    "    pos = {}\n",
    "    colors = []\n",
    "    for v in range(34):\n",
    "        pred = all_logits[i]\n",
    "        pos[v] = pred[v]\n",
    "        cls = labels[v]\n",
    "        colors.append(cls1color if cls else cls2color)\n",
    "    ax.cla()\n",
    "    ax.axis('off')\n",
    "    ax.set_title('Epoch: %d' % i)\n",
    "    nx.draw(nx_G.to_undirected(), pos, node_color=colors, with_labels=True, node_size=200)\n",
    "\n",
    "ani = animation.FuncAnimation(fig, draw, frames=len(all_logits), interval=200)\n",
    "HTML(ani.to_html5_video())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 课后练习\n",
    "\n",
    "Play with the GNN models by using other [graph convolution modules](https://docs.dgl.ai/api/python/nn.pytorch.html#module-dgl.nn.pytorch.conv)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:dgl]",
   "language": "python",
   "name": "conda-env-dgl-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
